//class Solution {
//    public List<List<Integer>> threeSum(int[] nums) {
//        List<List<Integer>> list = new ArrayList<>() ;
//        Arrays.sort(nums);
//        int len = nums.length ;
//        for(int i = 0 ; i < len ; ){
//            if(nums[i] > 0) break ;
//            int left = i+1 ;
//            int right = len - 1 ;
//            while(left < right){
//                if(nums[left]+nums[right] > -nums[i]){
//                    right -- ;
//                }else if(nums[left]+nums[right] < -nums[i]){
//                    left ++ ;
//                }else{
//                    list.add(new ArrayList<Integer>(Arrays.asList(nums[left],nums[right],nums[i])));
//                    left++ ;
//                    right -- ;
//                    while(left < right && nums[left] == nums[left-1]){
//                        left++ ;
//                    }
//                    while(left < right && nums[right] == nums[right+1]){
//                        right--;
//                    }
//                }
//            }
//            i ++ ;
//            while(i < len && nums[i]==nums[i-1]){
//                i ++;
//            }
//        }
//        return list ;
//    }
//}